Virtual content repository browser

ABSTRACT

An interactive tool for viewing and manipulating a virtual content repository (VCR) having an application program interface (API), comprising providing a first graphical user interface (GUI) configured to present a hierarchical namespace wherein the namespace includes at least one element, and wherein one of the at least one element can be selected, providing a second GUI configured to present and to enable editing of content associated with the selected element in the first GUI, providing a third GUI configured to present and to enable editing of schema associated with the selected element in the first GUI, and wherein the VCR includes at least one content repository, and wherein the at least one content repository includes a service provider interface (SPI) compatible with the API.

CLAIM OF PRIORITY

[0001] This application claims priority from the following application,which is hereby incorporated by reference in its entirety:

[0002] SYSTEM AND METHOD FOR A VIRTUAL CONTENT REPOSITORY U.S.Application No. 60/386,487, Inventors: James Owen, et al., filed on Feb.20, 2003. (Attorney's Docket No. BEAS-1360US0)

[0003] SYSTEMS AND METHODS FOR PORTAL AND WEB SERVER ADMINISTRATION,U.S. Application No. 60/451,174, Inventors: Christopher Bales, et al.,filed on Feb. 28, 2003. (Attorney's Docket No. BEAS-1371US0)

CROSS-REFERENCE TO RELATED APPLICATIONS

[0004] This application is related to the following co-pendingapplications which are each hereby incorporated by reference in theirentirety:

[0005] FEDERATED MANAGEMENT OF CONTENT REPOSITORIES, U.S. applicationSer. No. ______, Inventors: James Owen, et al., filed on ______.(Attorney's Docket No. BEAS-1360US1)

[0006] VIRTUAL REPOSITORY CONTENT MODEL, U.S. application Ser. No.,______, Inventors: James Owen, et al., filed on ______. (Attorney'sDocket No. BEAS-1361US0)

[0007] VIRTUAL REPOSITORY COMPLEX CONTENT MODEL, U.S. application Ser.No. ______, Inventors: James Owen, et al., filed on ______. (Attorney'sDocket No. BEAS-1364US0)

[0008] SYSTEM AND METHOD FOR A VIRTUAL CONTENT REPOSITORY, U.S.application Ser. No. ______, Inventors: James Owen, et al., filed on______. (Attorney's Docket No. BEAS-1363US0)

[0009] VIRTUAL CONTENT REPOSITORY APPLICATION PROGRAM INTERFACE, U.S.application Ser. No. ______, Inventors: James Owen, et al., filed on______. (Attorney's Docket No. BEAS-1370US0)

[0010] SYSTEM AND METHOD FOR SEARCHING A VIRTUAL REPOSITORY CONTENT,U.S. application Ser. No. ______, Inventor: Gregory Smith, filed on______. (Attorney's Docket No. BEAS-1365US0)

COPYRIGHT NOTICE

[0011] A portion of the disclosure of this patent document containsmaterial which is subject to copyright protection. The copyright ownerhas no objection to the facsimile reproduction by anyone of the patentdocument or the patent disclosure, as it appears in the Patent andTrademark Office patent file or records, but otherwise reserves allcopyright rights whatsoever.

FIELD OF THE DISCLOSURE

[0012] The present invention disclosure relates to content management,and in particular, a system and method for integrating disparate contentrepositories.

BACKGROUND

[0013] Content repositories manage and provide access to large datastores such as a newspaper archives, advertisements, inventories, imagecollections, etc. A content repository can be a key component of a Webapplication such as a Web portal, which must quickly serve up differenttypes of content in response to a particular user's requests. However,difficulties can arise when trying to integrate more than one vendor'scontent repository. Each may have its own proprietary applicationprogram interface (API), conventions for manipulating content, and dataformats. Performing a search across different repositories, for example,could require using completely different search mechanisms andconverting each repository's search results into a common format.Furthermore, each time a repository is added to an application, theapplication software must be modified to accommodate these differences.

BRIEF DESCRIPTION OF THE DRAWINGS

[0014]FIG. 1 is an illustration of a virtual content managementframework in one embodiment of the invention.

[0015]FIG. 2 is an illustration of functional layers in one embodimentof the invention.

[0016]FIG. 3 is an illustration of objects used in connecting arepository to a virtual content repository in one embodiment of theinvention.

[0017]FIG. 4 is an exemplary content model in one embodiment of theinvention.

[0018]FIG. 5 is an exemplary service model in one embodiment of theinvention.

[0019]FIG. 6 is an illustration of NopeOps service interaction in oneembodiment of the invention.

[0020]FIG. 7 is an illustration of a virtual content repository browserin one embodiment of the invention.

[0021]FIG. 8 is an illustration of a content editor in one embodiment ofthe invention.

[0022]FIG. 9 is an illustration of a schema editor in one embodiment ofthe invention.

[0023]FIG. 10 is an illustration of a property editor in one embodimentof the invention.

DETAILED DESCRIPTION

[0024] The invention is illustrated by way of example and not by way oflimitation in the figures of the accompanying drawings in which likereferences indicate similar elements. It should be noted that referencesto “an” or “one” embodiment in this disclosure are not necessarily tothe same embodiment, and such references mean at least one.

[0025] In the following description, various aspects of the presentinvention will be described. However, it will be apparent to thoseskilled in the art that the present invention may be practiced with onlysome or all aspects of the present invention. For purposes ofexplanation, specific numbers, materials and configurations are setforth in order to provide a thorough understanding of the presentinvention. However, it will be apparent to one skilled in the art thatthe present invention may be practiced without the specific details. Inother instances, well-known features are omitted or simplified in ordernot to obscure the present invention.

[0026] Parts of the description will be presented in data processingterms; such as data, selection, retrieval, generation, and so forth,consistent with the manner commonly employed by those skilled in the artto convey the substance of their work to others skilled in the art. Aswell understood by those skilled in the art, these quantities take theform of electrical, magnetic, or optical signals capable of beingstored, transferred, combined, and otherwise manipulated throughelectrical and/or optical components of a processor and its subsystems.

[0027] Various operations will be described as multiple discrete stepsin turn, in a manner that is most helpful in understanding the presentinvention, however, the order of description should not be construed asto imply that these operations are necessarily order dependent. Inparticular, these operations need not be performed in the order ofpresentation.

[0028] Various embodiments will be illustrated in terms of exemplaryclasses and/or objects in an object-oriented programming paradigm. Itwill be apparent to one skilled in the art that the present inventioncan be practiced using any number of different classes/objects, notmerely those included here for illustrative purposes. Furthermore, itwill also be apparent that the present invention is not limited to anyparticular software programming language or programming paradigm.

[0029]FIG. 1 is an illustration of a virtual content managementframework in one embodiment of the invention. A content repository 108is a searchable data store. Such systems can relate structured contentand unstructured content (e.g., digitally scanned paper documents,eXtensible Markup Language, Portable Document Format, Hypertext MarkupLanguage, electronic mail, images, video and audio streams, raw binarydata, etc.) into a searchable corpus. Content repositories can becoupled to or integrated with content management systems. Contentmanagement systems provide for content life cycle management (e.g.versioning), content review and approval, automatic contentclassification, event-driven content processing, process tracking andcontent delivery to other systems. For example, if a user fills out aloan application on a web portal, the web portal can forward theapplication to a content repository which, in turn, can contact a banksystem, receive notification of loan approval, update the loanapplication in the repository and notify the user by rendering theapproval information in a format appropriate for the web portal.

[0030] A virtual or federated content repository (hereinafter referredto as “VCR”) 100 is a logical representation of one or more individualcontent repositories 108 such that they appear and behave as a singlecontent repository from an application program's standpoint. This isaccomplished in part by use of an API (application program interface)104 and an SPI (service provider interface) 102. An API describes how anapplication program, library or process can interface with some programlogic or functionality. By way of a non-limiting illustration, a processcan include a thread, a server, a servlet, a portlet, a distributedobject, a web browser, or a lightweight process. An SPI describes how aservice provider (e.g., a content repository) can be integrated into asystem of some kind. SPI's are typically specified as a collection ofclasses/interfaces, data structures and functions that work together toprovided a programmatic means through which a service can be accessedand utilized. By way of a non-limiting example, APIs and SPIs can bespecified in an object-oriented programming language, such as Java™(available from Sun Microsystems, Inc. of Mountain View, Calif.) and C#(available from Microsoft Corp. of Redmond, Wash.). The API and SPI canbe exposed in a number of ways, including but not limited to staticlibraries, dynamic link libraries, distributed objects, servers,class/interface instances, etc.

[0031] In one embodiment, the API presents a unified view of allrepositories to application programs and enables them to navigate,perform CRUD (create, read, update, and delete) operations, and searchacross multiple content repositories as though they were a singlerepository. Content repositories that implement the SPI can “plug into”the VCR. The SPI includes a set of interfaces and services thatrepositories can implement and extend including schema management,hierarchy operations and CRUD operations. The API and SPI share acontent model 106 that represents the combined content of allrepositories 108 as a hierarchical namespace of nodes (or hierarchy).Given a node N, nodes that are hierarchically inferior to N are referredto as children of N whereas nodes that are hierarchically superior to Nare referred to as parents of N. The top-most level of the hierarchy iscalled the federated root. There is no limit to the depth of thehierarchy.

[0032] In one embodiment, content repositories can be children of thefederated root. Each content repository can have child nodes. Nodes canrepresent hierarchy information or content. Hierarchy nodes serve as acontainer for other nodes in the hierarchy akin to a file subdirectoryin a hierarchical file system. Content nodes can have properties. In oneembodiment, a property associates a name with a value of some kind. Byway of a non-limiting illustration, a value can be a text string, anumber, an image, an audio/visual presentation, binary data, etc. Eithertype of node can have a schema associated with it. A schema describesthe data type of one or more of a node's properties.

[0033]FIG. 2 is an illustration of functional layers in one embodimentof the invention. API 200 is layered on top of SPI 202. The SPI layerisolates direct interaction with repositories 212 from the API. In oneembodiment, this can be accomplished at run-time wherein the API librarydynamically links to or loads the SPI library. In another embodiment,the SPI can be part of a server process such that the API and the SPIcan communicate over a network. The SPI can communicate with therepositories using any number of means including, but not limited to,shared memory, remote procedure calls and/or via one or moreintermediate server processes.

[0034] Referring again to FIG. 2 and by way of a non-limiting example,content mining facilities 204, portlets 206, tag libraries 208,applications 210, and other libraries 218 can all utilize the API tointeract with a VCR. Content mining facilities can include services forautomatically extracting content from the VCR based on parameters.Portlet and Java ServerPages™ tag libraries enable portals to interactwith the VCR and surface its content on web pages. (Java ServerPages isavailable from Sun Microsystems, Inc.) In addition, application programsand other libraries can be built on top of the API.

[0035] In one embodiment, the API can include optimizations to improvethe performance of interacting with the VCR. One or more content caches216 can be used to buffer search results and recently accessed nodes.Content caches can include node caches and binary caches. A node cachecan be used to provide fast access to recently accessed nodes. A binarycache can be used to provide fast access to the data associated witheach node in a node cache. The API can also provide a configurationfacility 214 to enable applications, tools and libraries to configurecontent caches and the VCR. In one embodiment, this facility can beimplemented as a Java Management Extension (available from SunMicrosystems, Inc.). Exemplary configuration parameters are provided inTable 1. TABLE 1 Exemplary Configuration Parameters CONFIGURATIONPARAMETERS Active state for a binary cache of a repository (i.e., turnthe cache on or off). Maximum number of entries for a binary cache of arepository. Time-to-live for entries in a binary cache of a repository.Repository name. Active state for a node cache of a repository (i.e.,turn the cache on or off). Max entries for a node cache of a repository.Time-to-live for entries in a node cache of a repository. Password andusername for a repository. Read-only attribute for the repository.

[0036]FIG. 3 is an illustration of objects used in connecting arepository to a VCR in one embodiment of the invention. In oneembodiment, objects implementing API interface RepositoryManager 302 canserve as an representation of a VCR from an application program'sstandpoint. A RepositoryManager connect( ) method attempts to connectall available repositories with a current user's credentials to the VCR.By way of a non-limiting example, credentials in one embodiment canbased on the Java™ Authentication and Authorization Service (availablefrom Sun Microsystems, Inc.). Those of skill in the art will recognizethat many authorization schemes are possible without departing from thescope and spirit of the present embodiment. Each available contentrepository is represented by an SPI Repository object 306-310. TheRepositoryManager object invokes a connect( ) method on a set ofRepository objects. In one embodiment, a RepositorySession object (notshown) can be instantiated for each content repository to which aconnection is attempted. In one embodiment, the RepositoryManagerconnect( ) method can return an array of the RepositiorySessions to theapplication program, one for each repository for which a connection wasattempted. Any error in the connection procedure can be described by theRepositorySession object's state. In another embodiment, theRepositoryManager connect( ) method can connect to a specific repositoryusing a current user's credentials and a given repository name. In oneembodiment, the name of a repository can be a URI (uniform resourceidentifier).

[0037]FIG. 4 is an exemplary content model in one embodiment of theinvention. The content model is shared between the API and the SPI. Eachbox in FIG. 2 represents a class or an interface. Hollow tipped arrowsconnecting boxes indicate inheritance relationships wherein theclass/interface from which the arrows emanate inherit from theclass/interface to which the arrows point. Solid tipped arrows indicatethat the objects of the class/interface from which the arrows emanatecan contain or have references (e.g., pointers or addresses) to objectsof the class/interface to which the arrows point. In one embodiment,each object in a VCR has an identifier that uniquely identifies it. Anidentifier can be represented by an ID 400 (or id). An id can containthe name of a content repository and a unique id provided to it by therepository. In one embodiment, the id class/interface can be madeavailable through a common super class/interface 414 that can provideservices such as serialization, etc.

[0038] In one embodiment, content and hierarchy nodes can be representedby a Node 402 (or node). A node has a name, an id, and can also includea path that uniquely specifies an the node's location in the VCRhierarchy. By way of a non-limiting example, the path can be in aUnix-like directory path format such as ‘/a/b/c’ where ‘/’ is afederated root, ‘a’ is a repository, ‘b’ is a node in the ‘a’repository, and ‘c’ is the node's name. The Node class provides methodsby with a node's parent and children can be obtained. This is useful forapplications and tools that need to traverse the VCR hierarchy (e.g.,browsers). Nodes can be associated with zero or more Property 404objects (or properties). A property can have a name and zero or morevalues 406. In one embodiment, a property's name is unique relative tothe node to which the property is associated. A Value 406 can representany value, including but not limited to binary, Boolean, date/time,floating point, integer or string values. If a property has more thanone value associated with it, it is referred to as “multi-valued”.

[0039] A node's properties can be described by a schema. A schema can bereferred to as “metadata” since it does not constitute the content (or“data”) of the VCR per se. Schemas can be represented by an ObjectClass408 object and zero or more PropertyDefinition 410 objects. AnObjectClass has a schema name that uniquely identifies it within acontent repository. A node can refer to a schema using the ObjectClassname. In another embodiment, a content node can define its own schema byreferencing an ObjectClass object directly. In one embodiment, there isone PropertyDefinition object for each of a node's associated Propertyobjects. PropertyDefinition objects define the shape or type ofproperties. Schemas can be utilized by repositories and tools thatoperate on VCRs, such as hierarchical browsers. By way of a non-limitingexample, a hierarchy node's schema could be used to provide informationregarding its children or could be used to enforce a schema on them. Byway of a further non-limiting example, a VCR browser could use a contentnode's schema in order to properly display the node's values.

[0040] In one embodiment, a PropertyDefinition can have a name and candescribe a corresponding property's data type (e.g., binary, Boolean,string, double, calendar, long, reference to an external data source,etc.), whether it is required, whether it is read-only, whether itprovides a default value, and whether it specifies a property choicetype. A property choice can indicate if a property is a singleunrestricted value, a single restricted value, a multiple unrestrictedvalue, or a multiple restricted value. Properties that are single haveonly one value whereas properties that are multiple can have more thanone value. If a property is restricted, its value(s) are chosen from afinite set of values. But if a property is unrestricted, any value(s)can be provided for it. PropertyChoice objects 412 can be associatedwith a PropertyDefinition object to define a set of value choices in thecase where the PropertyDefinition is restricted. A choice can bedesignated as a default value, but only one choice can be a default fora given PropertyDefinition.

[0041] A PropertyDefinition object may also be designated as a primaryproperty. By way of a non-limiting example, when a schema is associatedwith a node, the primary property of a node can be considered itsdefault content. The isPrimary( ) method of the PropertyDefinition classreturns true if a PropertyDefinition object is the primaryPropertyDefinition. By way of a further non-limiting example, if a nodecontained a binary property to hold an image, it could also contain asecond binary property to represent a thumbnail view of the image. Ifthe thumbnail view was the primary property, software applications suchas browser could display it by default.

[0042]FIG. 5 is an exemplary service model in one embodiment of theinvention. Each box in FIG. 5 represents a class or an interface. Adashed arrow indicates that the interface from which the arrow emanatescan produce at run-time objects implementing the classes to which thearrow points. A content repository's implementation of the SPI isresponsible for mapping operations on the content model to theparticulars of a given content repository. Repository interface 500represents a content repository and facilitates connecting to it. TheRepository has a connect( ) method that returns an object of type Ticket502 (or ticket) if a user is authenticated by the repository. In oneembodiment, tickets are intended to be light-weight objects. As such,one or more may be created and possibly cached for each client/softwareapplication accessing a given repository.

[0043] A ticket can utilize a user's credentials to authorize a service.In one embodiment, a ticket can be the access point for the followingservice interfaces: NodeOps 508, ObjectClassOps 506, and SearchOps 510.An application program can obtain objects that are compatible with theseinterfaces through the API RepositoryManager class. The NodeOpsinterface provides CRUD methods for nodes in the VCR. Nodes can beoperated on based on their id or through their path in the nodehierarchy. Table 2 summarizes NodeOp class functionality exposed in theAPI. TABLE 2 NodeOps Functionality NodeOps FUNCTIONALITY Update a givennode's properties and property definitions. Copy a given node to a newlocation in a given hierarchy along with all its descendants. Create anew content node underneath a given parent. Create a new hierarchy nodeunderneath a given parent. Perform a full cascade delete on a givennode. Retrieve all the nodes in a given node's path including itself.Retrieve content node children for the given parent node. Retrievehierarchy node children for the given parent node. Retrieve a node basedon its ID. Retrieve a node based on its path. Retrieve the childrennodes for the given hierarchy node. Retrieve all the nodes with a givenname. Retrieve the Binary data for given node and property ids. Moves anode to a new location in the hierarchy along with all its descendants.Remove the ObjectClass from a given node. Renames a given node andimplicitly all of its descendants paths.

[0044]FIG. 6 is an illustration of NopeOps service interaction in oneembodiment of the invention. Application 600 utilizes a NodeOps object602 provided by the API which in turn utilizes one or more NodeOpsobjects 606-610 provided by an SPI Ticket. Each repository 612-616 isrepresented by a NodeOps object. When the API NodeOps 602 receives arequest to perform an action, it maps the request to one or more SPINodeOps objects 606-610 which in turn fulfill the request using theirassociated repositories. In this way, applications and librariesutilizing the API see a the VCR rather than individual contentrepositories.

[0045] As with the NodeOps service, there is one SPI ObjectClassOpsobject per repository and a single API ObjectClassOps object. The APIObjectClassOps object maps requests to one or more SPI ObjectClassOpswhich in turn fulfill the requests using their respective repositories.Through this service, ObjectClass and PropertyDefinition objects can beoperated on based on their id or through their path in the nodehierarchy. Table 3 summarizes ObjectClassOps class functionality exposedin the API. TABLE 3 ObjectClassOps Functionality ObjectClassOpsFUNCTIONALITY Create an ObjectClass, create PropertyDefinition(s) andassociate them with the ObjectClass. Add a given PropertyDefinition toan ObjectClass. Delete an ObjectClass. Delete a PropertyDefinition.Retrieve an ObjectClass with a given id. Retrieve all ObjectClass(es)available for all content repositories a given user is currentlyauthenticated for. Retrieve all of the ObjectClass(es) available for agiven content repository. Retreive a BinaryValue for the givenPropertyChoice. Retreive a PropertyDefinition. Retrieve allPropertyDefinitions for the given ObjectClass. Rename the givenObjectClass. Updates the given PropertyDefinition.

[0046] As with the NodeOps and ObjectClassOps services, there is one SPISearchOps object per repository and a single API SearchOps object. TheAPI SearchOps object maps requests to one or more SPI SearchOps which inturn fulfill the requests using their respective repositories. Amongother things, the SearchOps services allows applications and librariesto search for properties and/or values throughout the entire VCR. In oneembodiment, searches can be conducted across all Property, Value, BinaryValue, ObjectClass, PropertyChoice and PropertyDefinitions objects inthe VCR. Search expressions can include but are not limited to one ormore logical expressions, Boolean operators, nested expressions, objectnames, function calls, mathematical functions, mathematical operators,string operators, image operators, and Structured Query Language (SQL).Table 4 summarizes SearchOps class functionality exposed in the API.TABLE 4 Exemplary SearchOps Functionality SearchOps FUNCTIONALITYFlushes all nodes inside a content cache. Flushes a specified node froma content cache. Performs a search with the given search expression.Updates a content cache's attributes. Updates a content cache's activestate. Updates a content cache's max entries. Updates a content cache'stime-to-live attribute.

[0047]FIG. 7 is an illustration of a VCR browser in one embodiment ofthe invention. A VCR browser 700 can include one or more tools builtatop the API and has a graphical user interface (GUI). In oneembodiment, the browser can be rendered using Microsoft Windows®(available from Microsoft, Corp.). In yet another embodiment, thebrowser can be implemented as a web portal. Browser window 700 includesa navigation pane 702 and a context-sensitive editor window 704. Thenavigation pane displays a hierarchical representation of a VCR havingone content repository (“BEA Repository”) which itself has fourhierarchy nodes (“HR”, “Images”, “Marketing”, and “Products”). Selectionof a hierarchy node can cause its children to be rendered beneath it inthe navigation pane and cause an appropriate editor to be displayed inthe editor window. Selection may be accomplished by any means, includingbut not limited to mouse or keyboard input, voice commands, physicalgestures, etc. In this case, the VCR 706 is selected and a repositoryconfiguration editor is displayed in the editor window. The editorallows a user to change the configuration parameters (see Table 1) ofthe VCR. In one embodiment, configuration parameters are manipulated viaJava Management Extensions (see FIG. 1).

[0048]FIG. 8 is an illustration of a content editor in one embodiment ofthe invention. Navigation pane 802 is in “content” mode 812 such that itselectively filters out nodes that define only schemas. Content node 806(“Laptop”) has been selected. Node 806 is a child of hierarchy node“Products”, which itself is a child of repository “BEA Repository”.Selection of node 806 causes a corresponding content node editor to berendered in editor window 804. The editor displays the current valuesfor the selected node. The content type 814 indicates that the schemafor this node is named “product”. In this example, the node has fiveproperties: “Style”, “Description”, “Color”, “SKU” and “Image”. A useris allowed to change the value associated with these properties andupdate the VCR (via the update button 808), or remove the node from theVCR (via the remove button 810).

[0049]FIG. 9 is an illustration of a schema editor in one embodiment ofthe invention. Navigation pane 902 is in “type” mode 910 such that itonly displays nodes that have schemas but no content. Schema node 906(“product”) has been selected. Node 906 is a child of repository “BEARepository”. Selection of node 906 causes a corresponding schema editorto be rendered in editor window 904. The editor displays the currentschema for the selected node (e.g., derived from ObjectClass,PropertyDefinition, PropertyChoice objects). In this example, the nodehas five property definitions: “Style”, “Description”, “Color”, “SKU”and “Image”. For each property, the editor displays an indication ofwhether it is the primary property, its data type, its default value,and whether it is required. A property can be removed from a schema byselecting the property's delete button 912. A property can be added byselecting the “add property” button 908. A property's attributes can bechanged by selecting its name 914 in the editor window or the navigationpane 906 (see FIG. 10).

[0050]FIG. 10 is an illustration of a property editor in one embodimentof the invention. The schema named “product” is being edited. Schemaproperties definitions are listed beneath their schema name in thenavigation pane 1002. Schema property 1008 (“color”) has been selected.The editor window 1004 displays the property's current attributes. Thename of the attribute (e.g., “color”), whether the attribute is requiredor not, whether it is read-only, whether it is the primary property, itsdata type, default value(s), and whether the property is single/multiplerestricted/unrestricted can be modified. Changes to the a property'sattributes can be saved by selecting the update button 1006.

[0051] One embodiment may be implemented using a conventional generalpurpose or a specialized digital computer or microprocessor(s)programmed according to the teachings of the present disclosure, as willbe apparent to those skilled in the computer art. Appropriate softwarecoding can readily be prepared by skilled programmers based on theteachings of the present disclosure, as will be apparent to thoseskilled in the software art. The invention may also be implemented bythe preparation of integrated circuits or by interconnecting anappropriate network of conventional component circuits, as will bereadily apparent to those skilled in the art.

[0052] One embodiment includes a computer program product which is astorage medium (media) having instructions stored thereon/in which canbe used to program a computer to perform any of the features presentedherein. The storage medium can include, but is not limited to, any typeof disk including floppy disks, optical discs, DVT), CD-ROMs,microdrive, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs,DRAMs, VRAMs, flash memory devices, magnetic or optical cards,nanosystems (including molecular memory ICs), or any type of media ordevice suitable for storing instructions and/or data.

[0053] Stored on any one of the computer readable medium (media), thepresent invention includes software for controlling both the hardware ofthe general purpose/specialized computer or microprocessor, and forenabling the computer or microprocessor to interact with a human user orother mechanism utilizing the results of the present invention. Suchsoftware may include, but is not limited to, device drivers, operatingsystems, execution environments/containers, and user applications.

[0054] The foregoing description of the preferred embodiments of thepresent invention has been provided for the purposes of illustration anddescription. It is not intended to be exhaustive or to limit theinvention to the precise forms disclosed. Many modifications andvariations will be apparent to the practitioner skilled in the art.Embodiments were chosen and described in order to best describe theprinciples of the invention and its practical application, therebyenabling others skilled in the art to understand the invention, thevarious embodiments and with various modifications that are suited tothe particular use contemplated. It is intended that the scope of theinvention be defined by the following claims and their equivalents.

What is claimed is:
 1. An interactive tool for viewing and manipulatinga virtual content repository (VCR) having an application programinterface (API), comprising: providing a first graphical user interface(GUI) configured to present a hierarchical namespace wherein thenamespace includes at least one element, and wherein one of the at leastone element can be selected; providing a second GUI configured topresent and to enable editing of content associated with the selectedelement in the first GUI; providing a third GUI configured to presentand to enable editing of schema associated with the selected element inthe first GUI; and wherein the VCR includes at least one contentrepository, and wherein the at least one content repository includes aservice provider interface (SPI) compatible with the API.
 2. Theinteractive tool of claim 1 wherein: the namespace spans information ineach one of the at least one content repository.
 3. The interactive toolof claim 1 wherein: an element can one of: 1) a federated root; 2) acontent repository; 3) a hierarchy node; 4) a content node; 5) a schemanode; 6) a hierarchy node having a schema; and 7) a content node havinga schema.
 4. The interactive tool of claim 1 wherein: the SPI enablesthe at least one content repository to be integrated into the VCR. 5.The interactive tool of claim 1 wherein: the first GUT presents thenamespace as a tree.
 6. The interactive tool of claim 3 wherein: thefirst GUT can selectively present nodes having only content or schemas.7. The interactive tool of claim 1 wherein: the second GUI can presentsall properties and values associated with the selected element in thefirst GUI.
 8. The interactive tool of claim 1 wherein: the third GUT canpresent all property attributes associated with the selected element inthe first GUI.
 9. The interactive tool of claim 1 wherein: the first GUIallows elements to be moved, copied and deleted from the namespace. 10.The interactive tool of claim 1 wherein: selection of an element in thefirst GUI causes the presentation of the second GUI or the third GUI.11. The interactive tool of claim 1, further comprising: providing afourth GUI configured to present and to enable editing of configurationparameters associated with a selected content repository or root node inthe first GUI.
 12. An interactive tool for viewing and manipulating avirtual content repository (VCR) having an application program interface(API), comprising: providing a first graphical user interface (GUI)configured to present a hierarchical namespace wherein the namespaceincludes at least one element, and wherein one of the at least oneelement can be selected; providing a second GUI configured to presentand to enable editing of content associated with the selected element inthe first GUI; providing a third GUI configured to present and to enableediting of schema associated with the selected element in the first GUI;wherein the VCR includes at least one content repository, and whereinthe at least one content repository includes a service providerinterface (SPI) compatible with the API; and wherein the SPI enables theat least one content repository to be integrated into the VCR.
 13. Theinteractive tool of claim 12 wherein: the namespace spans information ineach one of the at least one content repository.
 14. The interactivetool of claim 12 wherein: an element can one of: 1) a federated root; 2)a content repository; 3) a hierarchy node; 4) a content node; 5) aschema node; 6) a hierarchy node having a schema; and 7) a content nodehaving a schema.
 15. The interactive tool of claim 12 wherein: the firstGUI presents the namespace as a tree.
 16. The interactive tool of claim14 wherein: the first GUI can selectively present nodes having onlycontent or schemas.
 17. The interactive tool of claim 12 wherein: thesecond GUI can presents all properties and values associated with theselected element in the first GUI.
 18. The interactive tool of claim 12wherein: the third GUI can present all property attributes associatedwith the selected element in the first GUI.
 19. The interactive tool ofclaim 12 wherein: the first GUI allows elements to be moved, copied anddeleted from the namespace.
 20. The interactive tool of claim 12wherein: selection of an element in the first GUI causes thepresentation of the second GUI or the third GUI.
 21. The interactivetool of claim 12, further comprising: providing a fourth GUI configuredto present and to enable editing of configuration parameters associatedwith a selected content repository or root node in the first GUI.
 22. Amachine readable medium having instructions stored thereon that whenexecuted by a processor cause a system to: provide a first graphicaluser interface (GUI) configured to present a hierarchical namespacewherein the namespace includes at least one element, and wherein one ofthe at least one element can be selected; provide a second GUIconfigured to present and to enable editing of content associated withthe selected element in the first GUI; provide a third GUI configured topresent and to enable editing of schema associated with the selectedelement in the first GUI; and wherein the VCR includes at least onecontent repository, and wherein the at least one content repositoryincludes a service provider interface (SPI) compatible with the API. 23.The machine readable medium of claim 22 wherein: the namespace spansinformation in each one of the at least one content repository.
 24. Themachine readable medium of claim 22 wherein: an element can one of: 1) afederated root; 2) a content repository; 3) a hierarchy node; 4) acontent node; 5) a schema node; 6) a hierarchy node having a schema; and7) a content node having a schema.
 25. The machine readable medium ofclaim 22 wherein: the SPI enables the at least one content repository tobe integrated into the VCR.
 26. The machine readable medium of claim 22wherein: the first GUT presents the namespace as a tree.
 27. The machinereadable medium of claim 24 wherein: the first GUI can selectivelypresent nodes having only content or schemas.
 28. The machine readablemedium of claim 22 wherein: the second GUI can presents all propertiesand values associated with the selected element in the first GUI. 29.The machine readable medium of claim 22 wherein: the third GUI canpresent all property attributes associated with the selected element inthe first GUI.
 30. The machine readable medium of claim 22 wherein: thefirst GUI allows elements to be moved, copied and deleted from thenamespace.
 31. The machine readable medium of claim 22 wherein:selection of an element in the first GUT causes the presentation of thesecond GUI or the third GUT.
 32. The machine readable medium of claim22, further comprising instructions that when executed cause the systemto: provide a fourth GUI configured to present and to enable editing ofconfiguration parameters associated with a selected content repositoryor root node in the first GUI.
 33. A system comprising: a means forproviding a first graphical user interface (GUI) configured to present ahierarchical namespace wherein the namespace includes at least oneelement, and wherein one of the at least one element can be selected; ameans for providing a second GUI configured to present and to enableediting of content associated with the selected element in the firstGUI; a means for providing a third GUI configured to present and toenable editing of schema associated with the selected element in thefirst GUI; and wherein the VCR includes at least one content repository,and wherein the at least one content repository includes a serviceprovider interface (SPI) compatible with the API signal.
 34. A computerdata signal embodied in a transmission medium, comprising: a codesegment including instructions to provide a first graphical userinterface (GUI) configured to present a hierarchical namespace whereinthe namespace includes at least one element, and wherein one of the atleast one element can be selected; a code segment including instructionsto provide a second GUI configured to present and to enable editing ofcontent associated with the selected element in the first GUI; a codesegment including instructions to provide a third GUI configured topresent and to enable editing of schema associated with the selectedelement in the first GUI; and wherein the VCR includes at least onecontent repository, and wherein the at least one content repositoryincludes a service provider interface (SPI) compatible with the API. 35.The computer data signal of claim 34 wherein: the namespace spansinformation in each one of the at least one content repository.
 36. Thecomputer data signal of claim 34 wherein: an element can one of: 1) afederated root; 2) a content repository; 3) a hierarchy node; 4) acontent node; 5) a schema node; 6) a hierarchy node having a schema; and7) a content node having a schema.
 37. The computer data signal of claim34 wherein: the SPI enables the at least one content repository to beintegrated into the VCR.
 38. The computer data signal of claim 34wherein: the first GUI presents the namespace as a tree.
 39. Thecomputer data signal of claim 36 wherein: the first GUT can selectivelypresent nodes having only content or schemas.
 40. The computer datasignal of claim 34 wherein: the second GUI can presents all propertiesand values associated with the selected element in the first GUI. 41.The computer data signal of claim 34 wherein: the third GUI can presentall property attributes associated with the selected element in thefirst GUI.
 42. The computer data signal of claim 34 wherein: the firstGUI allows elements to be moved, copied and deleted from the namespace.43. The computer data signal of claim 34 wherein: selection of anelement in the first GUI causes the presentation of the second GUT orthe third GUI.
 44. The computer data signal of claim 34, furthercomprising: a code segment including instructions to provide a fourthGUI configured to present and to enable editing of configurationparameters associated with a selected content repository or root node inthe first GUI.